/* Come from APUE */

/*
 * This program demonstrates method
 * print st_dev and st_rdev values
 */

#include <apue.h>

int main(int argc, char *argv[])
{
	int i;
	struct stat buf;

	for(i = 1; i < argc; i++){
		printf("%s: ", argv[i]);
		if(stat(argv[i], &buf) < 0){
			err_ret("stat error");
			continue;
		}
		
		printf("dev = %d/%d", major(buf.st_dev), minor(buf.st_dev));
		if(S_ISCHR(buf.st_mode) || S_ISBLK(buf.st_mode)){
			printf(" (%s) rdev = %d/%d", 
			       (S_ISCHR(buf.st_mode)) ? "charcter" : "block",
			       major(buf.st_rdev), minor(buf.st_rdev));
		}
		printf("\n");
	}
	
	exit(0);
}
